package com.jingdianjichi.auth.common.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

/**
 * 分页返回实体
 */
@Data
public class PageResult<T> implements Serializable {
    private Integer pageNo=1;

    private Integer pageSize=20;

    private Integer total=0;
//当前页 数据起始
    private  Integer start=0;

    private Integer totalPages=0;

    private List<T> result= Collections.emptyList();

    private  Integer end=0;

    public void  setReCords(List<T> result ){
        this.result=result;
        if(result!=null && result.size()>0){
            //将实体的类的个数传入
            setTotal(result.size());
        }
    }
    //设置 总页数
    public void setTotal(Integer total){
        this.total=total;
        if(this.pageSize>0){
            //若整除 即分好页 不整除就添加一页
            this.totalPages=(this.total/this.pageSize)+(total%this.pageSize==0?0:1);
        }else {
            this.totalPages=0;
        }
        //这行代码的作用是根据当前页码和每页显示的项目数量来计算数据列表的起始位置，用于分页显示数据。+1表示下一页第一个
        this.start=(this.pageSize>0?(this.pageNo-1)*this.pageSize:0) +1;
        //当前页减一 加上
        this.end=(start-1+this.pageSize*(this.pageNo>0?1:0));
    }
    public void setPageSize(Integer pageSize){
        this.pageSize=pageSize;
    }
    public void setPageNo(Integer pageNo){
        this.pageNo=pageNo;
    }
}
